Page({
    data: {
        gradeList: [],      
        gradeRange: [],     
        gradeName: "",       
        id: 0,           
        subscribeConsultTime: "",  
        situationDescription: "",  
        freeCount: 3,       
        userId: null           // 初始化为null，更合理的未登录状态标识
    },

    onLoad(options) {
        // 1. 检查是否有登录后返回的标识
        const { fromLogin } = options;
        if (fromLogin) {
            // 从登录页返回，显示提示
            wx.showToast({
                title: '登录成功',
                icon: 'success',
                duration: 1500
            });
        }

        // 2. 立即检查登录状态（页面加载就执行，不再等到点击确定）
        this.checkLoginStatus();
    },

    // 单独的登录状态检查方法
    checkLoginStatus() {
        const userId = wx.getStorageSync('userId');
        if (userId) {
            // 已登录：保存userId并继续加载页面
            this.setData({
                userId: userId
            });
            // 继续初始化页面数据
            this.initPageData();
        } else {
            // 未登录：提示并跳转登录页，携带当前页面路径
            wx.showToast({
                title: '请先登录',
                icon: 'none',
                duration: 1500
            });
            
            // 获取当前页面路径，用于登录后返回
            const currentPagePath = this.route; // 例如: "pages/consultBooking/consultBooking"
            
            setTimeout(() => {
                wx.redirectTo({
                    // 传递当前页面路径作为redirectUrl参数
                    url: `/pages/login/login?redirectUrl=${encodeURIComponent(currentPagePath)}`
                });
            }, 1500);
        }
    },

    // 初始化页面数据（仅在登录后执行）
    initPageData() {
        // 1. 初始化默认日期
        const today = new Date();
        const year = today.getFullYear();
        const month = (today.getMonth() + 1).toString().padStart(2, '0');
        const day = today.getDate().toString().padStart(2, '0');
        this.setData({
            subscribeConsultTime: `${year}-${month}-${day}`
        });

        // 2. 获取咨询师等级列表
        this.getCounselorGrades();
    },

    // 获取咨询师等级数据
    getCounselorGrades() {
        wx.request({
            url: 'http://localhost:8080/counselorGrade',
            method: 'GET',
            success: (res) => {
                if (res.data && res.data.code === 200) {
                    const filteredGrades = res.data.data.filter(item => item.id >= 1 && item.id <= 5);
                    this.setData({
                        gradeList: filteredGrades,
                        gradeRange: filteredGrades.map(item => item.gradeName),
                        gradeName: filteredGrades[0]?.gradeName || "",
                        id: filteredGrades[0]?.id || 0
                    });
                } else {
                    wx.showToast({
                        title: '获取等级失败',
                        icon: 'none'
                    });
                }
            },
            fail: (err) => {
                console.error('获取等级失败：', err);
                wx.showToast({
                    title: '网络异常',
                    icon: 'none'
                });
            }
        });
    },

    // 等级选择器变化事件
    onGradeChange(e) {
        const selectedGrade = this.data.gradeList[e.detail.value];
        this.setData({
            gradeName: selectedGrade.gradeName,
            id: selectedGrade.id
        });
    },

    // 日期选择器变化事件
    onDateChange(e) {
        this.setData({
            subscribeConsultTime: e.detail.value
        });
    },

    // 情况说明输入事件
    onDescInput(e) {
        this.setData({
            situationDescription: e.detail.value
        });
    },

    // 取消预约
    onCancel() {
        wx.navigateBack();
    },

    // 确认预约
    onConfirm() {
        const {
            id: gradeId,
            subscribeConsultTime: date,
            situationDescription: desc,
            userId
        } = this.data;

        // 再次验证登录状态（双重保险）
        if (!userId) {
            this.checkLoginStatus();
            return;
        }

        // 其他参数校验
        if (!date) {
            wx.showToast({
                title: '请选择预约日期',
                icon: 'none'
            });
            return;
        }
        if (!gradeId) {
            wx.showToast({
                title: '请选择咨询师等级',
                icon: 'none'
            });
            return;
        }
        if (!desc.trim()) {
            wx.showToast({
                title: '请输入情况说明',
                icon: 'none'
            });
            return;
        }
        if (userId === 0) {
            wx.showToast({
                title: '用户ID异常，请重新登录',
                icon: 'none'
            });
            return;
        }

        // 跳转至咨询师列表页
        wx.navigateTo({
            url: `/index/pages/consultBookingSelect/consultBookingSelect?` +
              `counselorGradeId=${gradeId}` +
              `&selectedDate=${date}` +
              `&userId=${userId}` +
              `&desc=${encodeURIComponent(desc)}`,
            success: () => {
                console.log('跳转参数：', { gradeId, date, desc, userId });
            },
            fail: (err) => {
                console.error('跳转失败：', err);
                wx.showToast({
                    title: '返回主页',
                    icon: 'none'
                });
            }
        });
    }
});
    